The invention relates to a method and a circuit assembly for driving a stepper motor having 2-, 3- or more phases, by means of specified courses of current curves, in particular for a microstep operation.
In a stepper motor the rotor is rotated stepwise by each a small angle by means of a controlled and stepwise rotating electromagnetic field which is generated by means of static motor coils. For that reason stepper motors are applied always in cases in which an exact positioning of an object in a linear direction or in a direction of rotation is required. However, stepper motors are used furthermore to an increasing extent also for pure driving purposes, for which for example usual direct current motors have been used so far. A great number of different configurations of stepper motors are known, wherein it is distinguished between 2-, 3- and more-phase stepper motors according to the number of motor coils.
For electrically driving stepper motors, for example known chopper methods are used, by means of which from a supplied motor supply voltage for each of the motor coils the direction of current, level of current and shape of current to be injected at any instant of time according to a specified current (target coil current) is generated by means of PWM current pulses, in order to drive the rotor of the motor by the thus induced rotating magnetic field.
It is frequently desired to enable a motor to rotate with as small as possible step angles in order to obtain an as high as possible resolution and precision of the positioning, as well as a continuous course of the torque. For that reason it is preferred to use the so called microstep operation instead of the known full-step and half-step operation, wherein in the microstep operation the currents flowing through the motor coils are not only switched on and off, but increase and decrease in a specified manner. The precision with which the stepper motor conducts microsteps is substantially dependent on the number of different current amplitudes by which the motor coils are controlled and how exact these amplitudes can be realized. In such cases a sine-shaped and cosine-shaped excitation of the motor coils is usually most appropriate, because by this a very continuous rotation without jerks and thus a calm motor running can be obtained.
However, for certain applications the demands on the precision of the continuity of the motor running are extremely high. In order to fulfill these demands, it is necessary to adapt the course of the current curve flowing through the motor coils for generating microsteps to the geometry of the motor (i.e. the specific type of the motor and its parameters and, if applicable, as well to an individual motor). These desired optimized current curves can then be realized by a Fourier-synthesis of certain sine- or triangle-functions or combinations thereof.
The current curves thus generated are usually continuous but not necessarily monotonically increasing or monotonically decreasing. However, the four quadrants of the current curve are typically symmetrical due to the symmetrical construction of the motors, so that only a quarter of the current curve has to be stored.
Nevertheless, storing of such a curve in particular within a monolithic integrated circuit controller for stepper motors is very expensive. For each microstep of the motor, one supporting point of the current curve, i.e. one value of the amplitude of the current curve, is to be stored, wherein one memory location for that has to receive a digit with a precision according to the quantization resolution of the values of the current amplitudes. In case of 256 microsteps in each quadrant with a resolution of 256 discrete current values for each microstep, a digit with 256*8 bit for each microstep results.
In comparison to the complexity of the digital core of a usual stepper motor driver, such a high number of memory locations for the current curve makes an implementation unreasonable, already for a resolution of only some ten microsteps, and consequently is not in line with market conditions.
Experience has shown that an alternative implementation of a current curve memory in the form of a RAM unit is very expensive to integrate into a given chip-design or chip layout because a RAM unit appears as a separate layout unit. Furthermore, a RAM unit requires that a user writes into it a microstep look-up table. However, such a table cannot easily be pre-written with, for example, a sine-function via reset values. This, however, would be interesting in order to keep the universality and simplicity of the unit also for those applications for which curves need not to be programmed.
It is desirable to provide a method and a circuit assembly for driving a 2-, 3- or more phase stepper motor, with which a desired course of the amplitudes of the current curves flowing through the motor coils can be realized in a comparatively simple manner and at the same time with high precision, especially if this course deviates from the usual sine- or cosine-shape.
One advantage of this solution is that the look-up table which comprises the data which are necessary for generating the desired courses of the current curves, only needs a complexity which is reduced to about between 15 and 20% in comparison to the above mentioned memory of the complete amplitude values for each supporting point of the current curve. By this, the look-up table can be realized in the form of a flip-flop-register within the digital part of a stepper motor driver, and the layout-waste caused by a separate RAM unit can be minimized.
Furthermore, any continuous courses of current curves which can be relevant for a stepper motor can in principal be realized by a method and circuit assembly according to the invention.
Finally, the solution according to the invention has also the advantage, that the values of the current amplitudes can be read-out in both directions, i.e. for a right-handed rotation and for a left-handed rotation of the motor.